home *** CD-ROM | disk | FTP | other *** search
/ The Game Master (3rd Edition) / The Game Master 3rd edition.iso / files / gamecard / modmgam1 / cchess.doc < prev    next >
Encoding:
Text File  |  1987-12-01  |  48.8 KB  |  1,535 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.              ----------------------------------
  21.               CCHESS: IBM PC Conference Chess
  22.              ----------------------------------
  23.               Communications Accessory
  24.              ----------------------------------
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.     CCHESS is distributed freely and may be copied by anyone for any
  33.     number of machines.  The author offers CCHESS as "shareware".  If
  34.     the program is found to be useful or entertaining, a registration
  35.     of $35.00 is requested.  If response warrants, CCHESS will be
  36.     enhanced and extended.    The author may be reached at:
  37.  
  38.  
  39.                  CABER Software
  40.                  R. (Scott) McGinnis
  41.                  P.O. Box 3607 Mdse Mart
  42.                  Chicago, IL 60654-0607
  43.  
  44.                  PLINK, GEnie id: TARTAN
  45.  
  46.  
  47.  
  48.  
  49.                              Version 1.1: 871201
  50.                              R.McGinnis; Chicago
  51.  
  52. CCHESS: IBM PC Conference Chess
  53. Version 1.1: 871201
  54.  
  55.  
  56.  
  57.                  Table of Contents
  58.                  -----------------
  59.  
  60. I.    Introduction  .............................................. page  1
  61.  
  62. II.    Running the program  ....................................... page  2
  63.  
  64. III.    CCHESS Display    ............................................ page  5
  65.  
  66. IV.    Services supported ......................................... page  6
  67.  
  68. V.    CCHESS Commands using COM-AND .............................. page 10
  69.  
  70. VI.    CCHESS Commands Standalone ................................. page 12
  71.  
  72. VII.    CCHESS Main Menu ........................................... page 13
  73.  
  74. VIII.    Beginning a Game ........................................... page 15
  75.  
  76. IX.    Game in Progress ........................................... page 17
  77.  
  78. X.    Saving and restoring a Game ................................ page 18
  79.  
  80. XI.    Ending a Game .............................................. page 19
  81.  
  82. XII.    Program Configuration (Alt-S, and Alt-P) ................... page 20
  83.  
  84. XIII.    Program Requirements ....................................... page 23
  85.  
  86. XIV.    Program and Author Information    ............................ page 24
  87.  
  88.  
  89.  
  90.                 Appendices
  91.                 ----------
  92.  
  93.  
  94. A.    Switches and Parameters .................................... page 25
  95.  
  96. B.    Files ...................................................... page 27
  97.  
  98. C.    Messages ................................................... page 28
  99.  
  100. D.    Save file format ........................................... page 31
  101.  
  102. E.    Beta Release ............................................... page 32
  103.  
  104.  
  105.  
  106. CCHESS: IBM PC Conference Chess                      Page  1
  107. Version 1.1: 871201
  108.  
  109.  
  110. I.    Introduction
  111.  
  112.  
  113.     A. What is CCHESS?
  114.  
  115.  
  116.        CCHESS for the IBM PC is an accessory program, intended to be
  117.        used with a 'base' communications program.  CCHESS is integrated
  118.        into the included program 'COM-AND'.  However, CCHESS may be used
  119.        with any comm program supporting a 'DOS gateway' that does not
  120.        break an established comm link.
  121.  
  122.  
  123.        CCHESS, used with network conferencing services such as People-
  124.        Link's PARTY, CompuServe's CB and GEnie's RTC conferencing,
  125.        provides a way to play chess with another person and 'see'
  126.        the game in progress.
  127.  
  128.  
  129.     B. This program
  130.  
  131.  
  132.        CCHESS Version 1.1 executes in CGA hi-res graphics mode, or in
  133.        Hercules graphics mode.  A Microsoft Mouse is supported, if one
  134.        is available.
  135.  
  136.  
  137.        CCHESS may be copied freely and distributed to anyone for any
  138.        number of machines.    The author offers CCHESS as "shareware".  If
  139.        the program is found to be useful or entertaining, a registration
  140.        is asked.  CCHESS will be extended and enhanced if response
  141.        warrants.
  142.  
  143.  
  144.     C. This document
  145.  
  146.  
  147.        This document describes the features of CCHESS.   It will not
  148.        attempt to describe all the features of COM-AND (which are
  149.        available within CCHESS if used), or any other communications
  150.        program used.  From time-to-time the assumption will be made
  151.        that COM-AND is used as the communications program, to high-
  152.        light the interaction between CCHESS and COM-AND.
  153.  
  154.  
  155.        Please do not take it that COM-AND is the only comm program
  156.        possible to use.  Refer to the documentation provided with your
  157.        favorite comm program for a full discussion of its function and
  158.        features.  They won't be available in PC-VCO, however.
  159.  
  160.  
  161.        Appendices here will provide details for very interested readers.
  162.  
  163.  
  164. CCHESS: IBM PC Conference Chess                      Page  2
  165. Version 1.1: 871201
  166.  
  167.  
  168. II.    Running the program
  169.  
  170.  
  171.     CCHESS is an accessory program, and may be entered in one of three
  172.     ways: (1) it may be invoked through the accessory menu of the comm
  173.     program COM-AND, (2) CCHESS may be loaded itself (in which case it
  174.     will need to be able to load COM-AND) and (3) it may be loaded
  175.     'piggyback' (intended for use with the DOS gateway of other
  176.     communications programs.  Each method is useful and will be
  177.     discussed separately.
  178.  
  179.  
  180.     A. Loading through COM-AND
  181.  
  182.  
  183.        COM-AND is invoked at the DOS prompt with the command:
  184.  
  185.        ------------------------------------------------------
  186.        "d>" COM-AND <options>
  187.  
  188.        Where "d>" is the DOS prompt, and
  189.          <options> is (<parm> (<parm> ...))
  190.          where <parm> is either a switch or a parameter
  191.  
  192.        Refer to Appendix A of the COM-AND document for a discussion
  193.        of switches and parameters.
  194.        ------------------------------------------------------
  195.  
  196.  
  197.        Once COM-AND has been loaded, the usual sequence would be to dial
  198.        a network service using COM-AND's dialing directory or script
  199.        language.  When connection has been established, logon achieved,
  200.        and a conference area entered, then CCHESS may be selected using
  201.        the F1 Accessories menu.
  202.  
  203.  
  204.        COM-AND defines an 'accessory' as:
  205.  
  206.        o       A name which is displayed in the menu (as you like)
  207.        o       A subdirectory for use during the accessory (optional)
  208.        o       A script file to be performed (optional)
  209.        o       A program to be loaded - along with parameters (optional)
  210.  
  211.        COM-AND was supplied with several accessory menu entries set to
  212.        load CCHESS, to serve as an example.  Once loaded, CCHESS is an
  213.        independent program, using the comm link established by COM-AND,
  214.        and also many of the COM-AND functions.  CCHESS is 'integrated'
  215.        into COM-AND.
  216.  
  217.  
  218.        Note that settings (echo/blank line suppression/logging etc) made
  219.        in COM-AND carry over to the accessory when it is loaded, and
  220.        settings made in the accessory carry over to COM-AND when the
  221.        accessory terminates.
  222.  
  223.  
  224. CCHESS: IBM PC Conference Chess                      Page  3
  225. Version 1.1: 871201
  226.  
  227.  
  228. II.    Running the program (continued)
  229.  
  230.  
  231.     B. Loading CCHESS directly
  232.  
  233.  
  234.        CCHESS may be invoked at the DOS prompt with the command:
  235.  
  236.        ------------------------------------------------------
  237.        "d>" CCHESS <options>
  238.  
  239.        Where "d>" is the DOS prompt, and
  240.          <options> is (<parm> (<parm> ...))
  241.          where <parm> is either a switch or a parameter
  242.  
  243.        Refer to Appendix A of this document for a full description of
  244.        switches and parameters.
  245.        ------------------------------------------------------
  246.  
  247.  
  248.        When CCHESS is run from the DOS prompt without the '/P' switch,
  249.        it looks for the COM-AND program on the current subdirectory (or
  250.        in the subdirectory indicated by a 'COM-AND=' environment
  251.        variable).  CCHESS will not run (without the '/P' switch) unless
  252.        it can find COM-AND.  CCHESS loads COM-AND and execution proceeds
  253.        on the CRT (COM-AND side) of the program.
  254.  
  255.  
  256.        Again, the usual sequence would be to dial a network service
  257.        using COM-AND's dialing directory or script language.  When
  258.        connection has been established, logon achieved, and a conference
  259.        area entered, then CCHESS may be invoked using the F1 key.
  260.  
  261.  
  262.        Loaded this way, the F1 key simply serves to switch between the
  263.        two sides of the program (CCHESS and COM-AND).  No menu of
  264.        additional accessories is available.  All other features of
  265.        COM-AND are available, however.
  266.  
  267.  
  268.  
  269. CCHESS: IBM PC Conference Chess                      Page  4
  270. Version 1.1: 871201
  271.  
  272.  
  273. II.    Running the program (continued)
  274.  
  275.  
  276.     C. Loading CCHESS Piggyback
  277.  
  278.  
  279.        CCHESS may be run piggyback as follows:
  280.  
  281.        ------------------------------------------------------
  282.        "d>" CCHESS /P COMx <speed> <other options>
  283.  
  284.        where COMx = COM1, COM2, COM3 or COM4 and
  285.           <speed> = 300, 1200, 2400, 4800, 9600
  286.  
  287.        Refer to Appendix A of this document for a full description
  288.        of other options.
  289.        ------------------------------------------------------
  290.  
  291.        For example:
  292.  
  293.            C> CCHESS /P COM1 2400
  294.  
  295.  
  296.        Used in this manner, CCHESS 'picks-up' a comm line already
  297.        opened and in use by another program.  The 'COMx' and '<speed>'
  298.        parameters are not strictly necessary; however, their use is
  299.        recommended unless you ALWAYS use the same comm port and line-
  300.        speed on all systems where ever you go.
  301.  
  302.  
  303.        Note that Alt-X terminates CCHESS and simply returns you to
  304.        DOS when CCHESS is loaded piggyback.  Alt-X terminates both
  305.        CCHESS and COM-AND when the program set is run without /P.
  306.  
  307.  
  308.        Once back at the DOS prompt, you must return to the comm program
  309.        you originally gatewayed - type 'EXIT' at the DOS prompt if your
  310.        gateway was originally to COMMAND.COM.  Refer to the documenta-
  311.        tion provided with your comm program on the appropriate means of
  312.        returning from a gateway.
  313.  
  314.  
  315.  
  316. CCHESS:  IBM PC Conference Chess                     Page  5
  317. Version 1.1:  871201
  318.  
  319.  
  320. III.    CCHESS Display
  321.  
  322.  
  323.     When the screen is placed into graphic mode, the screen is divided
  324.     into several areas.  The top line carries the program version and
  325.     release number, and the Main menu.  To the left of the screen is a
  326.     graphic representation of a chessboard.  On the right is a scrolling
  327.     region of eight lines for text and a history of the game (if one
  328.     is currently in progress).
  329.  
  330.  
  331.     Initially the board is displayed from the point of view of the
  332.     player of the white pieces, with all pieces in their starting
  333.     position.  You may setup a particular position with the 'Setup'
  334.     pulldown.
  335.  
  336.  
  337.     To begin a game you must have an opponent waiting.  You select
  338.     'Start Game' on the Commands pulldown.  You will be queried for
  339.     board position and other details.  You will be asked to identify the
  340.     ID of your opponent.  Your CCHESS program and your opponent's then
  341.     talk to each other, agreeing over the particulars.  Your opponent
  342.     will be given a chance to refuse the set-up as you have it.  If your
  343.     opponent accepts the setup, the game begins.
  344.  
  345.  
  346.     In conversation, when a speaker is identified (through the ID or
  347.     handle - see following) to be your opponent, moves are parsed from
  348.     received lines of text.  Moves and game commands are displayed as
  349.     they happen on-line.
  350.  
  351.  
  352.  
  353. CCHESS: IBM PC Conference Chess                      Page  6
  354. Version 1.1:   871201
  355.  
  356.  
  357. IV.    Services supported
  358.  
  359.  
  360.     CCHESS is encoded to work with several network services and multi-
  361.     user systems.  CCHESS parses every incoming line for an ID.
  362.     CCHESS's parser is 'automatic', in that you don't have to tell it
  363.     which system to parse.
  364.  
  365.  
  366.     The ID (or handle) parse begins after a carriage return from the
  367.     network.  When the ID of your opponent is identified, chess commands
  368.     are parsed.  The text is displayed if no command is parsed.  If no
  369.     ID is identified the text is displayed.  Blank lines (extra carriage
  370.     returns issued by the network) are not displayed by CCHESS because of
  371.     the limited text area (7 lines on a CGA).
  372.  
  373.  
  374.     CCHESS internal commands (such as moves) exchanged amongst opponents
  375.     are not displayed as text of a conversation.  CCHESS does not know
  376.     if a text line is empty or not until the entire line is received.
  377.     CCHESS erases an empty text line (visible as an ID followed by no
  378.     text or followed by just a CCHESS command) and reuses the line when
  379.     end-of-line (carriage return) is received.
  380.  
  381.  
  382.     The CCHESS parser is only designed to deal with text issued within
  383.     the conversational area of one of the systems.    The parser is
  384.     self-adjusting ...  all of the supported formats will be taken as
  385.     conversation.  [The automatic nature of the parser DOES produce some
  386.     false hits now and then.  These do not interfere with CCHESS at all
  387.     in normal usage.]
  388.  
  389.  
  390.     The graphic side is not altogether appropriate for other uses, such
  391.     as reading your mail.  For other uses, switch to the alpha side (F1
  392.     if you used COM-AND).
  393.  
  394.  
  395.     The following pages describe templates for IDs and handles as dis-
  396.     played on various systems (handles are assumed names which replace
  397.     or add to an ID).  I have also included some notes on each system
  398.     and its use with CCHESS.
  399.  
  400.  
  401. CCHESS: IBM PC Conference Chess                      Page  7
  402. Version 1.1:   871201
  403.  
  404.  
  405. IV.    Services supported (continued)
  406.  
  407.  
  408.     A. PLINK IDs and handles:
  409.  
  410.           "(" <ID> ") "          an initial "*" identifies handles
  411.  
  412.        Example:  (TARTAN) This is how a line would look on PLINK
  413.  
  414.  
  415.        PLINK does not report (to all in conference) when a customer
  416.        exits.
  417.  
  418.        CCHESS is best used with echo off (the system doesn't echo what
  419.        you type).  You turn echo off with the command /NOECHO.  The key-
  420.        board buffer (controls pull-down) allows you to see your typing
  421.        locally if you need.
  422.  
  423.  
  424.     B. GEnie IDs and handles:
  425.  
  426.           "<" [Handle] <ID> "> "
  427.  
  428.        Example:  <[Scott] TARTAN> This is how a line would look on GEnie
  429.  
  430.  
  431.        GEnie reports to all present the exit or termination of another
  432.        customer.  CCHESS Version 1.1 does not use the report.
  433.  
  434.        CCHESS is best used with echo off (the system doesn't echo what
  435.        you type).  GEnie does not normally echo entered characters.  If
  436.        you are echoing characters locally (alt-E) turn it off.  Use the
  437.        keyboard buffer to see your typing.
  438.  
  439.  
  440.     C. SOURCE IDs and aliases:
  441.  
  442.            <ID/alias> ": "    -or-   [nn] <ID/alias> ": "
  443.  
  444.        Example:  [22] TARTAN:  This is how a line would look on SOURCE
  445.  
  446.  
  447.        The SOURCE reports to all attending the exit or termination of
  448.        another customer.  CCHESS Version 1.1 does not use the report.
  449.  
  450.        CCHESS is best used with echo off (the system doesn't echo what
  451.        you type).  The SOURCE allows you to turn off echo by exiting the
  452.        SIG (entering command mode), setting half duplex (-> TERM -HALF)
  453.        and re-entering the SIG.
  454.  
  455.  
  456. CCHESS: IBM PC Conference Chess                      Page  8
  457. Version 1.1:   871201
  458.  
  459.  
  460. IV.    Services supported (continued)
  461.  
  462.  
  463.     D. TBBS IDs:
  464.  
  465.           "(" <node> ":" <ID> ") "
  466.  
  467.        Example:  (9:  Scott McGinnis) This is how tbbs looks
  468.  
  469.  
  470.        TBBS does not report (to all in conference) when a customer
  471.        exits.
  472.  
  473.        TBBS is still new to me; TBBS BBS's are multiuser (up to 16 lines
  474.        to a BBS), and provide a very comfortable conferencing facility.
  475.        I haven't discovered yet how to turn local echo off.  CCHESS is
  476.        best used with echo off - if there is no such facility, I am sure
  477.        one will be added, just to keep the reading easy.
  478.  
  479.  
  480.     E. PROTOCALL IDs and handles:
  481.  
  482.            "<" nn.nn <ID> ">"
  483.  
  484.        Example:  <04.21 TARTAN> This is how PROTOCALL looks
  485.  
  486.  
  487.        PROTOCALL reports to all attending the exit or termination of
  488.        another customer and various materializations and dematerializ-
  489.        ations.  CCHESS Version 1.1 does not use the report.
  490.  
  491.        CCHESS is best used with echo off (the system doesn't echo what
  492.        you type).  You toggle echo off with the command /ECHO.  The
  493.        keyboard buffer (controls pull-down) allows you to see your
  494.        typing locally if you need.
  495.  
  496.  
  497. CCHESS: IBM PC Conference Chess                      Page  9
  498. Version 1.1:   871201
  499.  
  500.  
  501. IV.    Services supported (continued)
  502.  
  503.  
  504.     F. CIS handles:
  505.  
  506.           "(" <Band> , <ID> ") "
  507.                where <Band> ::= (A!B)(N!NN)","
  508.  
  509.        Example:  (A1,TARTAN) This is how a line would look on CIS
  510.  
  511.  
  512.        CIS does not report (to all in conference) when a customer exits.
  513.  
  514.        CCHESS is best used with echo off (the system doesn't echo what
  515.        you type).  You turn echo off with the command /NOECHO.  The key-
  516.        board buffer (controls pull-down) allows you to see your typing
  517.        locally if you need.
  518.  
  519.  
  520.     G. Delphi IDs and handles:
  521.  
  522.           <ID> "> "     where an initial "." identifies handles
  523.  
  524.        Example:  TARTAN> This is how a line would look on Delphi
  525.  
  526.  
  527.        Delphi does not report (to all in conference) when a customer
  528.        exits.
  529.  
  530.        CCHESS is best used with echo off (the system doesn't echo what
  531.        you type).  I recommend requesting help from an experienced
  532.        Delphi user to do this.
  533.  
  534.  
  535. CCHESS:  IBM PC Conference Chess                     Page 10
  536. Version 1.1:  871201
  537.  
  538.  
  539. V.    CCHESS Commands using COM-AND
  540.  
  541.  
  542.     When CCHESS is loaded with COM-AND the following Alt'd keys are
  543.     available:
  544.  
  545.     F1    Switch between text (CRT) and graphic modes.  The switch
  546.         is not allowed if a game is in progress.
  547.  
  548.     F10    Help screen.  All currently implemented commands are
  549.         summarized on this screen.  Any command may be executed
  550.         directly while this screen is displayed.
  551.  
  552.     Alt-F10 DOS Gateway.  If there is sufficient memory available, and
  553.         if the environment variable "COMSPEC" identifies a valid
  554.         .COM or .EXE file, CCHESS will load the program and execute
  555.         it.  This normally is used to load a second copy of
  556.         COMMAND.COM for full access to DOS while a communication
  557.         session is in progress.
  558.  
  559.     Ctl-End Send a Break.  This sends a true 'break' signal.
  560.  
  561.     Alt-B    Redisplay (backscreen).  The speed of the display may be
  562.         controlled using Cntl-PgDn (slower) or Cntl-PgUp (faster).
  563.  
  564.     Alt-C    Clear the screen.
  565.  
  566.     Alt-D    Dialing directory.  The Dialing directory and file is
  567.         identical to that used by Procomm (version 2.x), to allow
  568.         files to be shared between the two programs.
  569.  
  570.     Alt-E    Toggle echo (full/half duplex).  This function is also
  571.         invoked through the dialing directory (echo on).
  572.  
  573.     Alt-F    File directory.  A mask is required - just as DOS DIR
  574.         command.
  575.  
  576.     Alt-G    Toggle blank line suppression.    CCHESS will suppress blank
  577.         lines on the CRT side if you wish.  This can be made a
  578.         program default through the Alt-O options menu.
  579.  
  580.     Alt-H    Hang-up.  Hang-up the phone.
  581.  
  582.     Alt-I    Program information.  Author information.  Propaganda.
  583.  
  584.     Alt-L    Toggle CGA/EGA modes (if you have an EGA).
  585.  
  586.  
  587. COM-AND: IBM PC Communications and accessories                 Page 11
  588. Version 1.1: 870731
  589.  
  590.  
  591. V.    CCHESS Commands using COM-AND (continued)
  592.  
  593.  
  594.     Alt-M    Define a macro for Alt-0 through Alt-9.  The Macro defin-
  595.         ition file is identical to that used by Procomm (version
  596.         2.x), allowing Macros to be shared between the two.
  597.  
  598.         Note: Although this menu can be used from either COM-AND or
  599.         accessory, macros are defined through COM-AND and changes
  600.         will be made on the COM-AND side.
  601.  
  602.     Alt-O    Options.  Set controlling flags for COM-AND.
  603.  
  604.         Note: Although this menu can be used from either COM-AND or
  605.         accessory, it really only effects COM-AND settings.
  606.  
  607.     Alt-P    Comm Parameters.  Set baud rate, parity, number of data
  608.         and stop bits for use when COM-AND is initially loaded.
  609.         These settings are overridden by run-time switches.
  610.         Whatever the current setting, the dialing directory
  611.         overrides when it is used.
  612.  
  613.         Note: Although this menu can be used from either COM-AND or
  614.         accessory, it really only effects COM-AND settings.  Each
  615.         accessory has an Alt-P function as well accessible only when
  616.         the accessory is loaded with the '/P' switch.
  617.  
  618.     Alt-R    Redial the last number dialed.    The program will redial the
  619.         last number dialed number until the function is terminated
  620.         (with ESC), or connection is made.
  621.  
  622.     Alt-S    Setup.    Define initial program values, such as Modem initial-
  623.         ization, the Modem Hangup sequence, and file names.
  624.  
  625.         Note: Although this menu can be used from either COM-AND or
  626.         accessory, it really only effects COM-AND settings.  Each
  627.         accessory has an Alt-S function as well which may or may not
  628.         be accessible when COM-AND is loaded.
  629.  
  630.     Alt-T    Elapsed time.  The time the program was loaded, and the time
  631.         the last call (Alt-C or Alt-R) was placed are displayed.
  632.         The elapsed time since the latest time is also displayed.
  633.  
  634.     Alt-X    Exit the program.  The program may or may not hangup the
  635.         phone, depending on the modem.    Note: COM-AND is also
  636.         terminated, no matter how you loaded CCHESS and COM-AND.
  637.  
  638.     Alt-Z    Toggle parity mask.  The high bit mask is used only for text
  639.         received and displayed - it has no effect on XMODEM
  640.         transfers.
  641.  
  642.     Alt-0/9 Send a Macro.  A string of characters defined through the
  643.         Alt-M command described above is transmitted.
  644.  
  645.  
  646. CCHESS:  IBM PC Conference Chess                     Page 12
  647. Version 1.1:  871201
  648.  
  649.  
  650. V.    CCHESS Commands Standalone
  651.  
  652.  
  653.     When CCHESS is loaded standalone (piggyback, /P) only the following
  654.     Alt'd keys are active:
  655.  
  656.     Alt-C    Screen Clear.  Clear the text area.
  657.  
  658.     Alt-L    Toggle CGA/EGA modes (if you have an EGA).
  659.  
  660.     Alt-S    Setup.    This menu allows setting a defaults used by CCHESS.
  661.         It is also available through the 'Controls' pull-down.
  662.  
  663.     Alt-P    Set Comm Parms.  This menu provides a way to change default
  664.         communications parameters used by CCHESS ONLY when it is run
  665.         piggyback.  It is therefore only available when CCHESS is
  666.         run piggyback.
  667.  
  668.     Alt-X    Exit the program.  In this case (piggyback) only CCHESS is
  669.         terminated.  You are returned to DOS.
  670.  
  671.  
  672.     When used in this manner, the pull-down menues are still available,
  673.     of course.  Transcripting is the only function obtained through a
  674.     pull-down that is inhibited when CCHESS is run piggyback.
  675.  
  676.  
  677. CCHESS:  IBM PC Conference Chess                     Page 13
  678. Version 1.1:  871201
  679.  
  680.  
  681. VII.    CCHESS Main Menu
  682.  
  683.  
  684.     On the top line of the display in CCHESS there is a menu of key-
  685.     words.    A keyword is selected (with the cursor keys or a mouse),
  686.     and a submenu pulled-down (with the return or right mouse button).
  687.     Submenu items are selected (again, with the cursor keys or a mouse),
  688.     and executed (with the return, space bar, or left mouse button).
  689.  
  690.  
  691.     Top-line menu items are selected with the Cursor right/left keys or
  692.     right and left motion with the mouse.  When the cursor key is
  693.     depressed, the next menu item (in a circular manner) is highlighted.
  694.     The highlighted keyword is 'selected'.
  695.  
  696.  
  697.     A submenu is pulled-down with the Cursor-down key (or End, or PgDn,
  698.     or the left mouse button).  A submenu item is selected from a
  699.     pull-down when it is highlighted by pressing the Cursor-down/up keys
  700.     keys repetitively.  When the Cursor key is depressed, the next submenu
  701.     item (again in a circular manner) is highlighted.  The highlighted
  702.     keyword is 'selected'.
  703.  
  704.  
  705.     A selected submenu item is executed with a Carriage Return.  That's
  706.     the key with the silly arrow.  When a submenu item is executed, the
  707.     pull-down is released (it goes back up?).  Hitting the Space-bar or
  708.     the left mouse button will also execute the selected item.
  709.  
  710.  
  711.     A pull-down is released without executing any item with any of the
  712.     following keys:  ESC, Home, PgUp, or right mouse button.
  713.  
  714.  
  715. CCHESS:  IBM PC Conference Chess                     Page 14
  716. Version 1.1:  871201
  717.  
  718.  
  719. VII.    CCHESS Main Menu (continued)
  720.  
  721.  
  722.     A.    Controls
  723.  
  724.         The 'Controls' pulldown allows you to select certain
  725.         control functions.  Controls are:
  726.  
  727.         .  The board legend may be turned on and off
  728.         .  The board may be viewed from either
  729.            Black's or White's side
  730.         .  You may playback (and view) a saved conference
  731.            (this does not play a game).
  732.         .  Transcripting may be turned on and off (if you
  733.            loaded CCHESS with COM-AND).
  734.         .  Turn keyboard display on and off.
  735.         .  Turn transcript hold on and off.
  736.         .  Invoke CCHESS's Setup menu (Alt-S invokes COM-AND's
  737.            Setup menu if COM-AND is loaded).
  738.  
  739.  
  740.     B.    Commands
  741.  
  742.         The 'Commands' pulldown allows you to issue commands to
  743.         start and end games, and issue commands during your turn:
  744.  
  745.         .  Wait for a certain opponent (who will 'start').
  746.         .  Start a game (when you have an opponent):
  747.            .. Start a new game
  748.            .. Restart from a saved position
  749.            .. Start a game, setting pieces by hand
  750.         .  Save the current game and terminate the current
  751.            game in progress (only during turn).
  752.         .  Resign the current game in progress (during turn).
  753.         .  Offer your opponent a draw (during turn).
  754.         .  Reject the last move transmitted (during turn).
  755.         .  Resend the last move (in case it got lost).
  756.         .  Switch to CRT mode (even if game is in progress;
  757.            (if a game is on, it will be terminated).
  758.  
  759.  
  760.     C.    Setup
  761.  
  762.         The 'Setup' pulldown allows you to setup board pieces:
  763.  
  764.         .  Reset the board to its initial state.
  765.         .  Manually place individual pieces.
  766.         .  Save the current position.
  767.         .  Restore a saved position.
  768.  
  769.  
  770. CCHESS:  IBM PC Conference Chess                     Page 15
  771. Version 1.1:  871201
  772.  
  773.  
  774. VIII.    Beginning a Game
  775.  
  776.  
  777.     Conceptually, the hardest part of CCHESS to visualize (or to put
  778.     into words) is the beginning of a game.  The bullets below perhaps
  779.     oversimplify the process, but make the process of beginning a
  780.     chess game on-line clear (I hope).
  781.  
  782.  
  783.     o    You will need access to a network supported by CCHESS
  784.         (PLINK, GEnie, SOURCE, TBBS, PROTOCALL, CIS or Delphi)
  785.         and an ID on that network.
  786.  
  787.     o    You will need to logon to the network of your choice and
  788.         enter the/a conference area (a line, channel, room or what
  789.         have you).
  790.  
  791.     o    You will need to be on the graphics side (CCHESS).  You
  792.         will need to set-up the board (using the 'Setup' pulldown).
  793.  
  794.     o    You will need to have an opponent present in the same
  795.         line/channel/room.  Your opponent will need the CCHESS
  796.         program as well, or a well developed visual imagination,
  797.         and accurate typing skills (not recommended).
  798.  
  799.     o    Your opponent will need to select 'Await opponent' from the
  800.         'Controls' pulldown.  Your opponent must specify your ID (or
  801.         handle or alias) as you will have it for the game.  [Note:
  802.         you cannot change your ID/handle during the game.]
  803.  
  804.     o    You then select 'Start Game' from the 'Controls' pulldown.
  805.         You will be queried as to:
  806.  
  807.         .  The board - is it setup correctly?
  808.         .  Are you going to play White or Black?
  809.         .  What is the ID of your opponent?
  810.  
  811.     o    At this point, you will see a notice telling you that the
  812.         two programs (yours and your opponent's) are talking.  Your
  813.         opponent will be shown the board, and be asked to accept the
  814.         game.
  815.  
  816.     o    If your opponent accepts the board as shown, the game is on,
  817.         and whoever plays White will be prompted for a move.  If
  818.         your opponent rejects the board, you will be informed, and
  819.         have another chance to setup the board and 'Start game'.
  820.  
  821.  
  822.     When all this has been accomplished (most of it should seem natural
  823.     to those who spend much time on-line), the game is 'on', and the
  824.     first player to move will be prompted for a move.
  825.  
  826.  
  827. CCHESS:  IBM PC Conference Chess                     Page 16
  828. Version 1.1:  871201
  829.  
  830.  
  831. VIII.    Beginning a Game (continued)
  832.  
  833.  
  834.     Moves are prompted in the lower right hand corner (of the CGA
  835.     screen, and above the text area on a Hercules screen).    A move is
  836.     entered as "<from> <to>" using standard notation.  For example:
  837.  
  838.         Our move: E2E4
  839.  
  840.     would be King's pawn on 2 moved to King's Pawn on 4 for White, as
  841.     White's first move.  Turning on the board legend makes the standard
  842.     notation easy to use (for those of us raised "P-K4").
  843.  
  844.  
  845.     When you are prompted for a move, you have a few other options as
  846.     well as the obvious one of entering <from> <to> square designations.
  847.     You can use the mouse to select the <from> and <to> squares, or you
  848.     might enter one of the following:
  849.  
  850.         o-o                Short castle
  851.         o-o-o                Long castle
  852.         REJECT                Refuse the last move
  853.         DRAW                Offer a draw
  854.         SAVE                SAVE the current position
  855.         RESIGN                Exit the game
  856.         EXIT                Terminate the game
  857.         Esc                Hit the escape key
  858.  
  859.  
  860.     When you hit the 'escape' key, your cursor will re-appear in the
  861.     scrolling text area and you may type to your opponent (or anybody
  862.     listening/watching).  When you enter a carriage return (or the Esc
  863.     key again), you will be returned to the move prompt.
  864.  
  865.  
  866.     You use the mouse to select <from> and <to> squares as follows:
  867.  
  868.     o    Select the <from> square with the mouse.
  869.     o    Press the left mouse button to 'keep' that square.
  870.     o    Select the <to> square you wish with the mouse.
  871.     o    Press the left mouse button to 'keep' that square and send
  872.         the move to your opponent.
  873.  
  874.  
  875.     Backspace will erase your entry (entered through the keyboard or the
  876.     mouse).  When you type a carriage return (or a second left mouse
  877.     button if you're using one), your move is verified and sent to your
  878.     opponent.  [Note:  CCHESS does not verify moves per se (it does not
  879.     help you play a better game, or avoid errors).    CCHESS only verifies
  880.     that there is a piece of your color on the <from> square.]
  881.  
  882.  
  883.     Should line noise, or the inadvertent loss of your opponent (for
  884.     example due to 'call waiting') interfere with the exchange of moves,
  885.     you may resend your last move with the 'Commands' pulldown.
  886.  
  887.  
  888. CCHESS:  IBM PC Conference Chess                     Page 17
  889. Version 1.1:  871201
  890.  
  891.  
  892. IX.    Game in progress
  893.  
  894.  
  895.     Once the game has started, CCHESS supports the play by alternating
  896.     move prompts, first white then black, and so on.  There are a few
  897.     limitations imposed by CCHESS when a game is in progress.
  898.  
  899.  
  900.     o    You cannot switch to the CRT side (COM-AND) without
  901.         terminating the current game in progress.  While a game is
  902.         in progress, the F1 key is inhibited.
  903.  
  904.     o    Should you encounter a program bug, or an emergency need
  905.         to switch to the CRT side, you may do so.  The 'Commands'
  906.         pulldown allows a switch to CRT side - however, it will
  907.         terminate any current game in progress.
  908.  
  909.     o    You can playback received text (if you loaded CCHESS with
  910.         COM-AND) with Alt-B only when it is not your turn.  You
  911.         will see transmitted and received CCHESS commands in the
  912.         playback, but CCHESS does not act upon them.
  913.  
  914.     o    Should your opponent loose a move (due to line noise or
  915.         what have you, you may resend your last move using the
  916.         'Commands' pulldown.  Select 'Resend move'.
  917.  
  918.     o    You may reject your opponent's last move.  You may type the
  919.         command 'REJECT' at your move prompt, or you may select
  920.         'Reject move' from the 'Controls' pulldown.  However, no
  921.         more than one move may be rejected at a time... you may not
  922.         reject the move prior to your opponent's REJECT.
  923.  
  924.     o    Certain commands (EXIT/DRAW/RESIGN/REJECT) may only be
  925.         performed during your 'turn'.
  926.  
  927.  
  928. CCHESS:  IBM PC Conference Chess                     Page 18
  929. Version 1.1:  871201
  930.  
  931.  
  932. X.    Saving and Restoring a Game
  933.  
  934.  
  935.     You may save a game in progress at any time using the 'SAVE'
  936.     command entered at the move prompt (as described above), or the
  937.     'Save' option of the 'Setup' pull-down, or the 'Save and exit'
  938.     option of the 'Commands' pulldown.  All three methods save the
  939.     current game (or board position if there isn't a game in progress)
  940.     in a disk file.  If there is a disk file of the name you select, it
  941.     will be purged and the new position written over it.
  942.  
  943.  
  944.     When a position is saved, the following items are recorded:
  945.  
  946.     o    Timestamp of the save
  947.     o    The current board position
  948.     o    The current 'to move' value (if any)
  949.     o    The game history (if any)
  950.  
  951.  
  952.     You may restore a saved position when no game is in progress, with
  953.     the 'Restore position' option of the 'Setup' pulldown.  When you
  954.     restore a saved position, you will see the board as it was when
  955.     the save file was taken.  You will not see the 'to move' value
  956.     unless you use the restored position to start a game ('START by
  957.     hand').
  958.  
  959.  
  960.     You may also restore a saved position when you initiate a game.
  961.     When you choose this option ('Restart saved game' of the 'Controls'
  962.     pulldown), the game as it was when the save took place is restored.
  963.     You will see the move log as it was when the save was taken (your
  964.     opponent will not, of course).    You may select either color to play
  965.     from this point.
  966.  
  967.  
  968. CCHESS:  IBM PC Conference Chess                     Page 19
  969. Version 1.1:  871201
  970.  
  971.  
  972. XI.    Ending a Game
  973.  
  974.  
  975.     CCHESS offers several options for terminating a game in progress.
  976.     Please note that when a game is terminated, CCHESS does not
  977.     terminate.  You may start a new game, switch to the CRT side (if
  978.     you loaded CCHESS with COM-AND), or just sit and puzzle.  Game
  979.     termination refers only to CCHESS's tracking/display of a game.
  980.  
  981.  
  982.     A.    Draw
  983.  
  984.         You may offer your opponent a draw only on your turn.  When
  985.         you offer a draw, your opponent will be queried for accept-
  986.         ance.  If you opponent accepts the offer, the game is done.
  987.         If your opponent rejects the offer the game must continue.
  988.  
  989.     B.    Save and Exit
  990.  
  991.         You may save the current position and exit the game at any
  992.         time.  When you execute this option, your opponent will be
  993.         informed of the fact, and your opponent's game terminated as
  994.         well.
  995.  
  996.     C.    Resign
  997.  
  998.         You may resign a game in progress when it is your move.
  999.         Your game is terminated, as is your opponent's.
  1000.  
  1001.  
  1002.     You may save a game position after you have ended a game.  This
  1003.     allows you to save a game for later restart when 'call waiting'
  1004.     knocks your opponent off-line.
  1005.  
  1006.  
  1007. CCHESS:  IBM PC Conference Chess                     Page 20
  1008. Version 1.1:  871201
  1009.  
  1010.  
  1011. XII.    Program Configuration (Alt-S, and Alt-P)
  1012.  
  1013.  
  1014.     A. Setup Screen (Alt-S)
  1015.  
  1016.        1. Files
  1017.  
  1018.           . Default Save file
  1019.  
  1020.         When you save a position, you will be asked for a file name.
  1021.         The file name specified here is used if you enter a blank
  1022.         save file name to this query.
  1023.  
  1024.           . Default Log
  1025.  
  1026.         This file name will be used when you request transcripting
  1027.         and enter a blank in response to the log file name query.
  1028.  
  1029.        2. Timings and Values
  1030.  
  1031.           . Millisecond loop
  1032.  
  1033.         The millisecond loop value gives the number of LOOP instruc-
  1034.         tions required to wait for one millisecond.  This type of
  1035.         timing function is used in CCHESS in several places: 1) to
  1036.         to pace displays such as playback, and 2) for tone
  1037.         generation.  260 is suggested for 4.77 Mhz clocks.  432 is
  1038.         recommended for 8Mhz clocks.  CCHESS will attempt to
  1039.         calculate the correct value if you set it smaller than 10.
  1040.  
  1041.           . Break delay
  1042.  
  1043.         As noted above, the break delay is controlled through the
  1044.         Millisecond loop value.  This value "break delay"
  1045.         specifies the number of "milliseconds" the comm line is
  1046.         held when a break is issued (Cntl-END).
  1047.  
  1048.           . Text Lines
  1049.  
  1050.         You may set the size of the scrolling region for text.
  1051.         Dedicated gamers will want less text, and more game history.
  1052.         Buffs will want more talk and less game...  Note that this
  1053.         doesn't take effect until the next use of CCHESS.
  1054.  
  1055.  
  1056. CCHESS:  IBM PC Conference Chess                     Page 21
  1057. Version 1.1:  871201
  1058.  
  1059.  
  1060. XII.    Program Configuration (continued)
  1061.  
  1062.  
  1063.     A. Setup Screen (Alt-S) (continued)
  1064.  
  1065.        3. Flags
  1066.  
  1067.           . Initial advert
  1068.  
  1069.         Turn off the advert after you've seen it.  Just before you
  1070.         register...  This only effects standalone usage.
  1071.  
  1072.           . Exit Query
  1073.  
  1074.         Some people disdain the query "do you really and truly mean
  1075.         it" when they type Alt-X.  Some feel it mandatory.  CCHESS
  1076.         is distributed with exit query disabled.  You may enable it,
  1077.         if you're so inclined.  This only effects standalone usage.
  1078.  
  1079.  
  1080.        4. Save
  1081.  
  1082.           You may change values for one execution of CCHESS, or you
  1083.           may change them for all subsequent executions of CCHESS.    If
  1084.           you save values, the values you've saved will be used the
  1085.           next time you run CCHESS.
  1086.  
  1087.  
  1088. CCHESS:  IBM PC Conference Chess                     Page 22
  1089. Version 1.1:  871201
  1090.  
  1091.  
  1092. XII.    Program Configuration (continued)
  1093.  
  1094.  
  1095.     B. Communications Parameters (Alt-P)
  1096.  
  1097.        1. Rate + Parity + Data bits + Stop Bits
  1098.  
  1099.           Baud rate, parity, number of data bits and number of stop bits
  1100.           are specified in combination through the first 10 selections
  1101.           on the Alt-P window.  These selections are the only way you
  1102.           may specify baud rate.  Other parameters (parity, data bits,
  1103.           and stop bits) may be set individually (below).
  1104.  
  1105.           Do not change the current setting after you've connected to a
  1106.           service.    Make your setting here before you use CCHESS
  1107.           on-line.
  1108.  
  1109.        2. Parity, Data bits and Stop bits
  1110.  
  1111.           Individual settings for parity, number of data bits and number
  1112.           of stop bits comprise the next 7 items of this menu.  You also
  1113.           set these values when you create a dialing directory entry.
  1114.  
  1115.           Again - do not change the current setting after you've
  1116.           connected to a service.  The settings on this screen are
  1117.           effective only when CCHESS is run standalone.  Changing a
  1118.           setting here could disconnect you.
  1119.  
  1120.        3. COM ports
  1121.  
  1122.           The last four items on this menu are the candidates for COM
  1123.           ports.  Select the appropriate port for your modem.  This item
  1124.           is usually selected once, and then left alone.
  1125.  
  1126.        4. Save
  1127.  
  1128.           You save the current settings for the next execution of CCHESS
  1129.           through the "Save" selection.  Settings are saved to disk.
  1130.  
  1131.  
  1132. CCHESS:  IBM PC Conference Chess                     Page 23
  1133. Version 1.1:  871201
  1134.  
  1135.  
  1136. XIII.    Program Requirements
  1137.  
  1138.  
  1139.     This program can only function on an IBM PC or DOS compatible
  1140.     machine.  CCHESS does direct to screen buffer fetches and stores;
  1141.     so compatibility is an important issue.
  1142.  
  1143.  
  1144.     CCHESS supports CGA and Hercules.  CCHESS uses a Microsoft Mouse if
  1145.     one is available (not well, but if I receive comments it'll
  1146.     certainly get better).    [CCHESS does not use EGA at this time as
  1147.     its screen aspect ratio would not approach 'square' squares.]
  1148.  
  1149.  
  1150.     CCHESS disk I/O is done through the 'Handle' oriented I/O routines
  1151.     added to DOS 2.0.  Therefore DOS 2.0 is a minimum requirement.
  1152.  
  1153.  
  1154.     CCHESS (Version 1.1) requires 78K for itself.  So you need 192.  To
  1155.     take advantage of the DOS Gateway (use another comm program) or to
  1156.     use COM-AND, you'll need 256K.
  1157.  
  1158.  
  1159. CCHESS:  IBM PC Conference Chess                     Page 24
  1160. Version 1.1:  871201
  1161.  
  1162.  
  1163. XIV.    Program and Author Information
  1164.  
  1165.  
  1166.     This program was written using Microsoft Macro-Assembler.  The
  1167.     author likes assembler.  Assembly language is an entirely appro-
  1168.     priate vehicle for some of the program, and a not-inappropriate
  1169.     vehicle for the rest of it.  Everything, in moderation...
  1170.  
  1171.  
  1172.     The author of this program is R.  Scott McGinnis of Chicago,
  1173.     Illinois.  PLINK and GEnie ID:    TARTAN.  Comment and suggestions
  1174.     (and criticism in moderation) are welcomed:
  1175.  
  1176.              CABER Software
  1177.              R. (Scott) McGinnis
  1178.              P.O. Box 3607 Mdse Mart
  1179.              Chicago, IL 60654-0607
  1180.  
  1181.  
  1182.     For this program, I wish to thank my wife Elizabeth.  She supported
  1183.     me whole-heartedly in this effort.  Without her belief in me I'd
  1184.     probably be prospecting somewhere in the desert, talking to mules.
  1185.  
  1186.  
  1187.     This program (Version 1.1) may be distributed freely with the caveat
  1188.     that the Author information displayed at program termination is not
  1189.     removed.  If the program is found entertaining or useful, a regis-
  1190.     tration of $35.00 is requested.  Should response warrant it, I will
  1191.     continue to develop and support this product.
  1192.  
  1193.  
  1194.     Most of the hardware names and software names in this document are
  1195.     trademarks or trade names of specific manufacturers.
  1196.  
  1197.  
  1198. CCHESS:  IBM PC Conference Chess                     Page 25
  1199. Version 1.1:  871201                          Appendices
  1200.  
  1201.  
  1202. A.    Switches and parameters
  1203.  
  1204.  
  1205.     Program Switches:
  1206.  
  1207.     /C 'CGA only':  You may specify a CGA display only with this switch.
  1208.         EGA and Hercules displays are inhibited.  The default for CCHESS
  1209.         is to automatically adjust to Hercules or CGA.
  1210.  
  1211.     /G  'Force Hercules':  You may force Hercules mode even if PC-VCO
  1212.         doesn't think you have a Hercules board.  However - use this
  1213.         switch cautiously.
  1214.  
  1215.     /H 'Hercules':  You may specify a Hercules admissible with this
  1216.         switch.  This is the default.
  1217.  
  1218.     /E 'EGA':  CCHESS ignores the availablility of an EGA adaptor
  1219.         unless you use this switch (EGA may be toggled within CCHESS
  1220.         with Alt-L).  CCHESS does not display a 'square' chess board
  1221.         with EGA, but EGA does give considerably more room for text.
  1222.  
  1223.     /P  'Piggyback':  CCHESS will open the COM port in such a manner as
  1224.         to retain another program's already opened line.  When CCHESS is
  1225.         exited, the previous state is restored.  This is for use with
  1226.         other communications programs having a DOS Gateway (e.g.
  1227.         PROCOMM).
  1228.  
  1229.     /X  'Debug mode': This switch enables certain resident debugging
  1230.         keys.  I do not recommend you use it.  I document it only for
  1231.         the VERY curious.
  1232.  
  1233.  
  1234. CCHESS: IBM PC Conference Chess                      Page 26
  1235. Version 1.1:  871201
  1236.  
  1237.  
  1238. A.    Switches and Parameters (continued)
  1239.  
  1240.  
  1241.     Program parameters:
  1242.  
  1243.        COM1     CCHESS uses the COM1 port
  1244.        COM2     CCHESS uses the COM2 port
  1245.        COM3     CCHESS uses the COM3 port
  1246.        COM4     CCHESS uses the COM4 port
  1247.  
  1248.        300        CCHESS uses port at 300 baud
  1249.        1200     CCHESS uses port at 1200 baud
  1250.        2400     CCHESS uses port at 2400 baud
  1251.        4800     CCHESS uses port at 4800 baud
  1252.        9600     CCHESS uses port at 9600 baud
  1253.  
  1254.        EVEN     CCHESS uses port with even parity
  1255.        ODD        CCHESS uses port with odd parity
  1256.        NONE     CCHESS uses port with no parity
  1257.  
  1258.        DATA7    CCHESS transmits/receives 7 data bits
  1259.        DATA8    CCHESS transmits/receives 8 data bits
  1260.  
  1261.        STOP1    CCHESS uses and expects 1 stop bit
  1262.        STOP2    CCHESS uses and expects 2 stop bits
  1263.  
  1264.  
  1265.     Program switches require no delimiters.  Parameters when contiguous
  1266.     must be preceded by a blank.  For example:
  1267.  
  1268.     A> CCHESS 1200        Run the program for 1200 baud communications
  1269.     A> CCHESS /P1200    Piggyback, 1200 baud
  1270.     A> CCHESS /P 1200    Piggyback, 1200 baud
  1271.  
  1272.  
  1273.     Program defaults are:
  1274.  
  1275.     A> CCHESS COM2 300 EVEN DATA7 STOP1
  1276.  
  1277.  
  1278. CCHESS: IBM PC Conference Chess                      Page 27
  1279. Version 1.1:  871201
  1280.  
  1281.  
  1282. B.    Files
  1283.  
  1284.  
  1285.     Program files:    CCHESS expects the following files on the default
  1286.     drive (and subdirectory)
  1287.  
  1288.     CCHESS.DFT    Parameter save area (Alt-S and Alt-P)
  1289.  
  1290.  
  1291.     CCHESS will create this file if it is not found.  CCHESS will auto-
  1292.     matically update the .DFT file if the program version number is
  1293.     different from the .DFT file version number.  When CCHESS is loaded,
  1294.     the old file format will be loaded.  A new file will then be created
  1295.     to replace the old file.
  1296.  
  1297.  
  1298.     When a new major (e.g.    1.0, 1.0, ...) is released or when you move
  1299.     CCHESS from one machine to another the previous .DFT file probably
  1300.     should be purged (and recreated by CCHESS).
  1301.  
  1302.  
  1303.     CCHESS also uses (if available) the following files:
  1304.  
  1305.     CCHESS.SAV    Default save position file
  1306.     CCHESS.LOG    Default log file name
  1307.  
  1308.  
  1309.     Each of these file names may be changed through the ALT-S (Setup)
  1310.     Menu.  CCHESS currently implements the rule for file names:  If the
  1311.     given file name carries a drive spec (i.e.  C:) or path (sub-
  1312.     directory), the name is taken 'as is'.  If neither condition holds,
  1313.     the default drive and subdirectory are added to the file name.
  1314.  
  1315.  
  1316.  
  1317. CCHESS:  IBM PC Conference Chess                     Page 28
  1318. Version 1.1:  871201                          Appendices
  1319.  
  1320.  
  1321. C.    Messages
  1322.  
  1323.  
  1324.     Only for the technically inclined, I've included here the actual
  1325.     messages CCHESS issues.  These messages are ASCII, and when received
  1326.     are expected to be prefaced by a parsable ID or handle.
  1327.  
  1328.  
  1329.     AWAIT opponent: Transmitted when game is set to 'await opponent'.
  1330.  
  1331.         CHESS: WAITING
  1332.         =-----+------=
  1333.               !
  1334.               +----------------------> 15 bytes, literal ascii
  1335.  
  1336.     START Game: Transmitted by initiator of a game.  The receiver
  1337.     must be 'awaiting opponent'.  The transmitter awaits either
  1338.     (1) ACCEPT or (2) REJECT messages from the receiver.
  1339.  
  1340.         CHESS: START xyz<board><chksum>
  1341.         =-----+----=-+++=--+--==--+---=
  1342.               !      !!!  !     !
  1343.               !      !!!  !     +----> 2 byte checksum, bin-ascii
  1344.               !      !!!  !
  1345.               !      !!!  +-----------> 64 byte board, bin-ascii
  1346.               !      !!!
  1347.               !      !!+--------------> 1 byte: Value 1/2 Unused
  1348.               !      !!
  1349.               !      !+---------------> 1 byte: Value 1/2 We are B/W
  1350.               !      !
  1351.               !      +----------------> 1 byte: Value 1/2 Who first
  1352.               !
  1353.               +-----------------------> 13 bytes; literal ASCII
  1354.  
  1355.     ACCEPT game: Transmitted by receiver to initiator to accept START.
  1356.  
  1357.         CHESS: GAME
  1358.         =----+----=
  1359.              !
  1360.              +----------------------> 12 bytes, literal ascii
  1361.  
  1362.     REJECT game: Transmitted by receiver to initiator to reject START.
  1363.  
  1364.         CHESS: REJECT
  1365.         =----+------=
  1366.              !
  1367.              +----------------------> 14 bytes, literal ascii
  1368.  
  1369.  
  1370. CCHESS:  IBM PC Conference Chess                     Page 29
  1371. Version 1.1:  871201                          Appendices
  1372.  
  1373.  
  1374. C.    Messages (continued)
  1375.  
  1376.  
  1377.     EXIT game: Transmitted by current player to signal abrupt terminate.
  1378.  
  1379.         CHESS: EXIT
  1380.         =----+----=
  1381.              !
  1382.              +----------------------> 12 bytes, literal ascii
  1383.  
  1384.     RESIGN game: Transmitted by current player to resign game.
  1385.  
  1386.         CHESS: RESIGN
  1387.         =----+------=
  1388.              !
  1389.              +----------------------> 14 bytes, literal ascii
  1390.  
  1391.     DRAW game: Transmitted by current player to offer a draw.  This
  1392.     message will be acknowledged by (1) OKDRAW or (2) NODRAW
  1393.  
  1394.         CHESS: DRAW
  1395.         =----+----=
  1396.              !
  1397.              +----------------------> 12 bytes, literal ascii
  1398.  
  1399.     OKDRAW: Transmitted in response to DRAW message to accept
  1400.  
  1401.         CHESS: OKDRAW
  1402.         =----+------=
  1403.              !
  1404.              +----------------------> 14 bytes, literal ascii
  1405.  
  1406.     NODRAW: Transmitted in response to DRAW message to reject
  1407.  
  1408.         CHESS: NODRAW
  1409.         =----+------=
  1410.              !
  1411.              +----------------------> 14 bytes, literal ascii
  1412.  
  1413.  
  1414. CCHESS:  IBM PC Conference Chess                     Page 30
  1415. Version 1.1:  871201                          Appendices
  1416.  
  1417.  
  1418. C.    Messages (continued)
  1419.  
  1420.  
  1421.     MOVE command: Transmitted by current player to indicate move.  This
  1422.     message rejected ad hoc by REJECT MOVE
  1423.  
  1424.         CHESS: MOVE xxyy
  1425.         =-----+---=-=+=+
  1426.               !      ! !
  1427.               !      ! +-------------> 'to' square, <alpha><numeric>
  1428.               !      !
  1429.               !      +---------------> 'from' square, <alpha><numeric>
  1430.               !
  1431.               +----------------------> 12 bytes, literal ascii
  1432.  
  1433.     REJECT move: Transmitted during turn after 1st move
  1434.  
  1435.         CHESS: REJECT
  1436.         =----+------=
  1437.              !
  1438.              +----------------------> 14 bytes, literal ascii
  1439.  
  1440.  
  1441. CCHESS:  IBM PC Conference Chess                     Page 31
  1442. Version 1.1:  871201                          Appendices
  1443.  
  1444.  
  1445. D.    Save file structure:
  1446.  
  1447.     0     1     2      3    4     5     6      7    8
  1448.     +-----+-----+-----+-----+-----+-----+-----+-----+---//
  1449.     ! 'C' ! 'C' ! 'H' ! 'E' ! 'S' ! 'S' ! <ver-rev> !   ...
  1450.     +-----+-----+-----+-----+-----+-----+-----+-----+---//
  1451.  
  1452.           8     9      10    11    12    13      14   ...    18
  1453.       //--+-----+-----+-----+-----+-----+-----+----/ /----+-----+---//
  1454.           ! mm      ! '/' ! dd        ! '/' ! yyyy      ! ' ' !   ...
  1455.       //--+-----+-----+-----+-----+-----+-----+----/ /----+-----+---//
  1456.  
  1457.           18    19      20    21    22    23      24    25    26
  1458.       //--+-----+-----+-----+-----+-----+-----+-----+-----+---//
  1459.           ! hh      ! ':' ! mm        ! ':' ! ss        !   ...
  1460.       //--+-----+-----+-----+-----+-----+-----+-----+-----+---//
  1461.  
  1462.           26             ...              76
  1463.       //--+-----+-----+-----+----/ /----+-----+-----+-----+---//
  1464.           ! Col ! ToM ! 48 bytes reserved for future use  !   ...
  1465.       //--+-----+-----+-----+----/ /----+-----+-----+-----+---//
  1466.  
  1467.           76      78          80      202          204
  1468.       //--+-----+-----+-----+-----+----/ /----+-----+------
  1469.           ! Square 0  ! Square 1  !    ...      ! Square 63 !
  1470.       //--+-----+-----+-----+-----+----/ /----+-----+-----+
  1471.  
  1472.           204      206          208      ...
  1473.       //--+-----+-----+-----+-----+-----------+----/ /-----
  1474.           ! Log count ! White 1   ! Black 1   ! White 2   ...
  1475.       //--+-----+-----+-----+-----+-----------+----/ /----+
  1476.  
  1477.         <Ver-rev>    Binary, Version * 256 + Revision
  1478.         mm        ASCII, Month number (01-12)
  1479.         dd        ASCII, Day number (01-31)
  1480.         yyyy        ASCII, Year
  1481.         hh        ASCII, Hour number (00-23)
  1482.         mm        ASCII, Minute number (00-59)
  1483.         ss        ASCII, Second number (00-59)
  1484.         Col        Color of saving player (0 = white)
  1485.         ToM        Color of player to move (0 = white)
  1486.         Square <n>    Binary, represents piece on square n
  1487.         White 1     Binary, <from square #> <to square #>
  1488.         Log count    Binary, count of move log in bytes
  1489.  
  1490.  
  1491. CCHESS:  IBM PC Conference Chess                     Page 32
  1492. Version 1.1:  871201                          Appendices
  1493.  
  1494.  
  1495. D.    Beta release
  1496.  
  1497.  
  1498.     Version 1.1 is a beta release, rather in the way of an experiment.
  1499.     It is not in any way a completed program or utility.  It will only
  1500.     be completed if people downloading this and reviewing it find it of
  1501.     interest... interesting enough to use it and to report back to me
  1502.     difficulties and problems.
  1503.  
  1504.  
  1505.     There are many oversights and errors of omission in this program.
  1506.     As this is the first public release, I expect there'll turn up the
  1507.     usual crop of bugs.  For this reason, release of CCHESS is labeled a
  1508.     beta release.  In the following weeks (months) I hope to address the
  1509.     following matters:
  1510.  
  1511.     o    Coronation (Piece promotion)
  1512.     o    REJECT more than one layer of moves
  1513.     o    A protocol for move exchange (receiver ACK's each MOVE).
  1514.     o    A chess clock.
  1515.     o    Playback of a saved game.
  1516.  
  1517.  
  1518.     Each of these matters are areas I would appreciate other's opinions.
  1519.     For example, a protocol for move exchanges would ensure that moves
  1520.     are received by the opponent, and ensure you are informed of a lost
  1521.     move.  However - what should be done at that point?  Experience may
  1522.     show that no such protocol is required - or experience may leave
  1523.     some very frustrated gamers.
  1524.  
  1525.  
  1526.     The comments and criticisms I receive will be used to guide the
  1527.     development of version 1.1 and further versions of this game.  When
  1528.     I feel that the program is satisfactory (to its users), I'll go on
  1529.     to produce a version of CHECKERS and a version of BACKGAMMON for
  1530.     on-line use.
  1531.  
  1532.  
  1533.     Please address any comments and criticisms you have - and bug
  1534.     reports - to the ID TARTAN on either the GEnie or PLINK systems.
  1535.